IntersectionObserver支援度:Can I Use)
因為前幾天講到slider,想要紀錄一下前陣子在工作上同事分享的好招。
以往做slider會有左右箭頭,如果要達到比較好的使用者體驗,需要知道slider是不是已經到底來判斷是否要顯示箭頭。IntersectionObserver
是一個API用來判斷物體是否在可視範圍內,而我們要利用這個API來判斷是否要顯示箭頭,
例如:左方的箭頭顯示邏輯就是當第一張slide出現在可視範圍就不顯示,右方箭頭亦然。
以下是範例片段:
const observeElementInContainer = (element, container, callback)=> {
const observer = new IntersectionObserver((entries) => {
const entry = entries[0];
if (entry.isIntersecting) {
callback(true);
}else{
callback(false);
}
});
observer.observe(element, { root: container });
}
onMounted(() => {
observeElementInContainer(targetLeft.value, slideContainer.value, (isInContainer) => {
isLeftArrShow.value=!isInContainer
});
observeElementInContainer(targetRight.value, slideContainer.value, (isInContainer) => {
isRightArrShow.value=!isInContainer
});
})
IT15-Day23-Intersection Observer API in Slider